using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using System.Text.RegularExpressions;
using 凌依.工具库;
using 凌依.Xml;

public class 表格转XML工具
{
    [MenuItem("小洛/工具/表格转XML")]
    static void Init()
    {
        string 表格路径 = Application.dataPath+@"/Resources/数据/表格";
        string XML路径 = Application.dataPath+@"/Resources/数据/XML数据";


        string[] 表格文件 = IO函数.文件夹_ALL子集文件(表格路径).ToArray();
        //string[] Xml文件 = IO函数.文件夹_ALL子集文件(XML路径).ToArray();


        List<string> 表格文件名路径 = new List<string>();
        List<string> XMl文件路径 = new List<string>();


        foreach (var item in 表格文件)
        {
            string[] sArray = Regex.Split(item,"表格",RegexOptions.IgnoreCase);

            string[] ls = sArray[1].Split('.');
            if(ls[ls.Length-1]=="csv")
                表格文件名路径.Add(sArray[1].Substring(1,sArray[1].Length-1));
        }


        //显示 数据缓存
        List<string> 生成_xml文件 = new List<string>();
        List<string> 读取_csv = new List<string>();


        foreach (var item in 表格文件名路径)
        {
            string[] xml文件路径1 = item.Split('\\');
            string csv文件名 = xml文件路径1[xml文件路径1.Length - 1];

            string XML文件地址 = "/";
            string csv文件路径 = 表格路径 +'/'+ item;

            if (xml文件路径1.Length==1)
            {
                XML文件地址 = "/XML数据/";
                转换方法(XML文件地址, csv文件路径);
                continue;
            }

            for (int i = 0; i < xml文件路径1.Length-1; i++)
                XML文件地址 += xml文件路径1[i] + "/";

            string[] vs = csv文件名.Split('_');
            XML文件地址 += vs[0]+".xml";
            XML文件地址 = XML路径 + XML文件地址;

            转换方法(XML文件地址, csv文件路径);


            //记录数据
            if (!生成_xml文件.Contains(XML文件地址))
                生成_xml文件.Add(XML文件地址);

            读取_csv.Add(item);
        }

        //显示数据
        foreach (var item in 读取_csv)
            Debug.Log(item);
        foreach (var item in 生成_xml文件)
            Debug.Log(item);
        Debug.Log($"转换完成 共计csv文件:{读取_csv.Count}个  生成的xml文件:{生成_xml文件.Count}个");



        void 转换方法(string xml文件地址,string csv路径)
        {
            xml文件地址 = xml文件地址.Replace('/', '\\');//防止路径报错 勿删

            csv路径 = csv路径.Replace('/', '\\');
            string[] 文件地址 = xml文件地址.Split('\\');
            string 可用文件地址 = "";
            for (int i = 0; i < 文件地址.Length - 1; i++)
                可用文件地址 += 文件地址[i] + '\\';

            IO操作.文件夹_创建(可用文件地址);
            
            if (!XMl文件路径.Contains(xml文件地址))
            {
                IO操作.删除文件(xml文件地址);
                XMl文件路径.Add(xml文件地址);
            }

            表格转Xml 转 = new 表格转Xml(csv路径, xml文件地址);
            转.转换();
        }
    }
   
}